A digital videocassette player (DVCR) has been developed for the general-purpose recording of ATV signals as digital video data and reproducing the ATV signals from the recorded digital video data. Particularly, in the case of a standard-definition videocassette recorder (SD-VCR) for recording and reproducing the ATV signal, research has proceeded into improved recording formats for special reproduction, which provide high picture quality and satisfy price requirements. The ATV signal fed to the SD-VCR includes a transport packet having an MPEG-2 structure recommended by the Moving Picture Experts Group (MPEG).
The conventional SD-VCR signal consists of intra-frame coded data having a two-dimensional error correction code (ECC) structure. The code conventionally used for the error-correction encoding is a two-dimensional modified Reed-Solomon code (R-S code). For the purpose of understanding the two-dimensional error-correction encoding, per convention the data bytes are considered as being arrayed by row and by column, with each row of bytes extending in a row direction, with each column of bytes extending in a column direction. The SD-VCR error correction code for digital video as it extends in a row direction, called inner code, is of a type referred to as (85, 8) in which eight bytes of the eighty-five bytes per row of digital video are used for conveying row parity information. The SD-VCR error correction code for digital video as it extends in a column direction, called outer code, is of a type referred to as (149, 11) in which eleven bytes of the one hundred forty-nine bytes per column of digital video are used for conveying column parity information.
During the recording process, after outer error-correction encoding is performed by appending eleven bytes of outer parity to a 138-byte outer code in the column direction, the inner error-correction encoding is performed by appending eight bytes of inner parity to a 77-byte inner code in the row direction. Recording is done row by row, one data sync block after another. The data are recorded according to the SD-VCR standard, using 24/25 modulation in which an extra bit is added to the beginning of each three-byte data word and the result is subjected to interleaved NRZI modulation. The three bytes of each data word are randomized prior to interleaved NRZI modulation according to standardized patterns, proceeding from the bytes submitted for recording. The particular data modulation scheme used during recording is immaterial to the invention disclosed herein. During the reproducing process, after recovering the bytes submitted for recording, the inner error-correction decoding is first performed in the row direction; and, after the error is corrected for a maximum of four bytes among 85 bytes in each of the 149 rows, any uncorrected sync block has an error flag appended thereto. Then, the outer error-correction decoding is performed in the column direction for correcting uncorrected sync blocks up to a maximum of eleven bytes among 149 bytes, by using the error flag in the process for identifying those sync blocks that are to be subject to correction. Each frame of the SD-VCR signal is recorded in specified first portions of a number of consecutive recording tracks (five tracks per field of each two-field frame, in the case of 455 lines per one-thirtieth second frame time conventional color video) with the first portion of each recording track recording a respective macroblock of data having a fixed number of bits. As referred to the original video information supplied for recording, each macroblock contains a 4-block section of the luminance component and two spatially corresponding sections of chrominance components. Each section of respective chrominance component includes 1, 2 or 4 blocks depending on the relative spatial resolution of luminance and chrominance information in different types of macroblock respectively referred to as 4:2:0, 4:2:2 and 4:4:4 type. Each block of data is a square array of picture element samples having 8 rows and 8 columns. The term "block" is also used to refer to the code generated by coding the discrete cosine transform (DCT) of the square array of picture element samples; and the term "macroblock" is also used to refer to the code generated by coding the discrete cosine transforms (DCTs) of the blocks within the macroblock of original video information supplied for recording.
On the other hand, the ATV signal comprises mostly inter-frame coded data, interspersed between occasional intra-frame coded data, in a structure specified by the MPEG-2 standard. This structure includes groups of intra-frame coded data respectively descriptive of selected I video frames, which video frames are independently encoded without relying upon information from another video frame; P data frames coding differences of respective video frames from video frames predicted from the preceding intra-frame or predicted-frame data using motion compensation between adjacent video frames; and B data frames coding differences of respective video frames from video frames that are bi-directionally predicted from the preceding intra- or predicted-frame data and the following intra- or predicted-frame data, using motion compensation between adjacent video frames. One group of pictures (GOP) generally consists of fifteen frames, to facilitate processing the NTSC television signal having thirty frames per second. Additionally, the transmission order and the display order are formatted according to the MPEG-2 model, using I-P-B-B-P-B-B-P-B-B-P-B-B-B-B for the transmission order and using I-B-B-P-B-B-P-B-B-P-B-B-P-B-B for the display order. However, in practice, a B-B-I-P-B-B-P-B-B-P-B-B-P-B-B transmission order is customarily used together with the I-B-B-P-B-B-P-B-B-P-B-B-P-B-B display order. In the SD-VCR, the supplied ATV signal is encoded in this practical transmission order, and the signal is reproduced in the practical display order by the television monitor used with the SD-VCR.
The intra-frame coded data descriptive of an I video frame are independently coded without reference to any other video frame. However, during the inter-frame encoding of P and B video frames within each group of pictures (GOP) unit (fifteen frames maximum) following an I video frame, only the differences between the frame being encoded and another frame are encoded, using dependently coded inter-frame coding. So, if an error is generated in decoding one frame of the ATV signal, the error propagates to other frames of the corresponding GOP unit dependently coded therefrom. Since the ATV signal is largely inter-frame coding data, if an error is generated in the normal-play data of an ATV signal, the picture quality displayed by the SD-VCR is almost always unacceptably flawed.
A previous solution to this problem allocates a specified portion of the normal-play data region, which portion is referred to as the ECC3 region, for storing additional information for correcting the error of the normal-play data. This is in addition to an ECC1 region for storing outer parity information appended to the outer code and an ECC2 region for storing the inner parity information appended to the inner code. The result, however, is a lowered recording efficiency for the normal-play data per se. Accordingly, the inventor sought a method of recording and reproducing digital video data applicable for use in an SD-VCR for recording and reproducing an ATV signal, which method does not require a special ECC3 region, but which improves the error-correcting efficiency for the normal-play data during normal reproduction. The inventor made a number of observations when considering how to find such a method.
The trick-play data will normally not be used for still-frame purposes in an SD-VCR that records ATV since normal-play data descriptive of a complete detailed I intra-frame are stored in framestore memory, as part of the procedure of decoding the ATV signal in the ATV receiver, so still-frame operation is available from the ATV receiver. Slow-motion effects can also be achieved using normal-play data. The need for incorporating trick-play data into recorded ATV is primarily for implementing fast search of recorded data using viewable fast-forward and fast-reverse modes of play. It is desirable to derive trick-play data proceeding solely from intra-frame coded frames, since there is no prescribed sequential order of flames associated with intra-frame coding and decoding that has to be taken into account when implementing a viewable fast-reverse mode of play.
Coding and decoding in inter-frame coding is done presuming the frames to occur in a prescribed order in time, which complicates the implementation of a viewable fast-reverse mode of play using inter-frame coded frames. In the viewable fast-reverse mode of play the previous intra-frame coded frames are unavailable as a basis for updating by substantially-real-time dependent decoding of inter-frame coded frames, as coded for the viewable fast-forward mode of play. Sufficient storage for an entire 16-frame GOP is required to provide for the time-reversal of the inter-flame decoding procedure, which substantially increases the cost of the recorder/reproducer.
If the trick-play data are derived solely from intra-frame coded flames, and if the normal-play data are coded without reliance on trick-play data, the problem of providing substantially errorless error correction of the normal-play data is completely separate from the problem of correcting errors in the trick-play data, the inventor discerned. He also discerned that the problem of correcting errors in the trick-play data is a substantially less stringent one than the problem of correcting errors in the normal-play data. This is in part because viewers of images reproduced from recorded SD-VCR signals are less critical of trick-play images produced in viewable fast-forward and fast-reverse modes of play, referred to as fast-search modes. The problem of correcting errors in the trick-play data is also of reduced concern when the trick-play images are only intra-frame coded; this is because there is no frame-to-frame propagation of errors, as would be the case with inter-frame coding.
These observations by the inventor inspired the inventive insight that it would be advantageous to exclude the trick-play data when determining the outer parity to be appended to the outer code. An expurgated Reed-Solomon code with fewer bytes per column in the outer code could be used when excluding the trick-play data in determining the outer parity. However, since the number of bytes per column in the outer code of the R-S code for SD-VCR has already become standardized to some degree, the inventor finds it preferable for compatibility reasons to replace the rows of trick data with rows containing prescribed bytes for the purpose of determining the outer code parity bytes. When decoding the R-S code during video reproduction, the rows containing the prescribed bytes replace the rows of trick data before making the error-correction calculations and are treated as constants not subject to correction, rather than variables subject to correction in the error-correction calculations. Excluding the N rows of trick-play data when determining the outer parity to be appended to the outer code allows the eleven bytes of outer parity to correct eleven errors in a column of 149-N bytes of normal-play data, rather than eleven errors in a column of 149 bytes, 149-N of which were normal-play data and N of which were trick-play data. Since N is typically thirty or so, improved error-correction capability is afforded to the normal-play data by excluding the trick-play data from the calculation of outer parity. Error correction for the trick-play data is provided just by inner error-correction encoding, or it is provided by its own separate outer error-correction encoding followed by inner error-correction encoding.
Correction of errors in normal-play data is further improved by diagonally scanning the two-dimensional R-S code across its rows to obtain bytes for recording. During playback diagonal scanning to regenerate horizontal rows of the two-dimensional R-S code for inner error-correction decoding converts a burst error to isolated single-byte-per-row errors that are more likely to be within the byte-correction-per-row capability of the inner error-correction decoding. An error burst that is sustained for a protracted period equal to the duration of a few rows, the number of which rows is less than the number of bytes per row that can be corrected by the inner error-correction code, is converted to a plurality of shorter error bursts in the de-interleaved rows. Many of these shorter error bursts can be corrected by the inner error-correction code, conserving the longer-burst burst error correction capability of the outer error-correction code applied to normal-play data.